package org.apache.ibatis.common.logging;

/**
 * @Name Log
 * @Description: 日志接口
 * @Version v1.0.0
 * @Author: lichao
 * @Date: 2024-05-14 16:40:44
 **/
public interface Log {

    /**
     * 判断打印 Debug 级别日志的功能是否开启？
     *
     * @return boolean 结果
     * @version v1.0.0
     * @author lichao
     * @date 2024-05-15 15:04:40
     */
    boolean isDebugEnabled();

    /**
     * 判断打印 Trace 级别日志的功能是否开启？
     *
     * @return boolean 结果
     * @version v1.0.0
     * @author lichao
     * @date 2024-05-15 15:04:40
     */
    boolean isTraceEnbaled();

    /**
     * 打印 Error 级别的日志信息
     *
     * @param msg Error 日志信息
     * @param e   Error 异常
     * @version v1.0.0
     * @author lichao
     * @date 2024-05-15 15:05:14
     */
    void error(String msg, Throwable e);

    /**
     * 打印 Error 级别的日志信息
     *
     * @param msg Error 日志信息
     * @version v1.0.0
     * @author lichao
     * @date 2024-05-15 15:05:14
     */
    void error(String msg);

    /**
     * 打印 Warn 级别的日志信息
     *
     * @param msg Warn 日志信息
     * @version v1.0.0
     * @author lichao
     * @date 2024-05-15 15:05:14
     */
    void warn(String msg);

    /**
     * 打印 Debug 级别的日志信息
     *
     * @param msg Debug 日志信息
     * @version v1.0.0
     * @author lichao
     * @date 2024-05-15 15:05:14
     */
    void debug(String msg);

    /**
     * 打印 Trace 级别的日志信息
     *
     * @param msg Trace 日志信息
     * @version v1.0.0
     * @author lichao
     * @date 2024-05-15 15:05:14
     */
    void trace(String msg);

}

